package com.wyp.design.pattern.behavior.visitor;

import java.util.ArrayList;
import java.util.List;

/**
 * 访问者模式: 封装作用于某种数据结构(List Set Map 等) 中的个元素的操作.可以在不改变个元素的类的前提下,定义作用这些元素的操作,行为型.
 */
public class Test {
    public static void main(String[] args) {
        List<Course> courseList = new ArrayList<Course>();

        FreeCourse freeCourse = new FreeCourse();
        freeCourse.setName("SpringMVC数据绑定");

        CodingCourse codingCourse = new CodingCourse();
        codingCourse.setName("Java设计模式精讲 ");
        codingCourse.setPrice(299);

        courseList.add(freeCourse);
        courseList.add(codingCourse);

        for (Course course : courseList) {
            course.accept(new Visitor());
        }

    }
}
